#include "ISort.h"

void ISort::Bubbling(vector<int>& vecInput)
{

	bool flag = false;

	for (int i=0;i<vecInput.size() -1;i++)
	{
		flag = false;
		for (int j=0;j<vecInput.size()-1-i;j++)
		{
			if (vecInput[j] >vecInput[j+1])
			{
				flag = true;
				int temp = vecInput[j];
				vecInput[j] = vecInput[j + 1];
				vecInput[j + 1] = temp;
			}
		}

		if (!flag)
		{
			break;
		}
	}

}

void ISort::QuickSort(vector<int>& vecInput, int low, int high)
{
	if (low >= high)
	{
		return;
	}

	int i = low;
	int j = high;
	int x = vecInput[low];

	while (i<j)
	{
		while (i<j && vecInput[j]>=x)
		{
			j--;
		}
		while (i<j && vecInput[i]<=x)
		{
			i++;
		}
		if (i<j)
		{
			int temp = vecInput[i];
			vecInput[i] = vecInput[j];
			vecInput[j] = temp;
		}
	}
	vecInput[low] = vecInput[i];
	vecInput[i] = x;


	QuickSort(vecInput, low, i - 1);
	QuickSort(vecInput, i + 1, high);
}
